package com.imut.oa.service;

import com.imut.oa.common.PageResult;
import com.imut.oa.pojo.dto.AttendancePageQueryDTO;
import com.imut.oa.pojo.dto.AttendanceRemarkDTO;
import com.imut.oa.pojo.dto.EmployeeAttendanceDTO;
import com.imut.oa.pojo.dto.WorkTimeConfigDTO;
import com.imut.oa.pojo.vo.AttendanceRecordVO;

import java.util.List;

public interface AttendanceService {
    /**
     * 考勤分页查询
     * @param dto
     * @return
     */
    PageResult page(AttendancePageQueryDTO dto);

    /**
     * 考勤备注
     * @param attendanceRemarkDTO
     */
    void updateRemark(AttendanceRemarkDTO attendanceRemarkDTO);

    /**
     * 打卡
     * @param employeeAttendanceDTO
     */
    void attendance(EmployeeAttendanceDTO employeeAttendanceDTO);

    /**
     * 获取当天打卡记录
     * @param currentId
     * @return
     */
    List<AttendanceRecordVO> getTodayRecords(Long currentId);
    /**
     * 获取上班时间和下班时间的配置
     * @return
     */
    WorkTimeConfigDTO getWorkTimeConfig();
    /**
     * 更新上班时间和下班时间的配置
     * @param workTimeConfigDTO
     * @return
     */
    int updateWorkTimeConfig(WorkTimeConfigDTO workTimeConfigDTO);

    /**
     * 获取分页的打卡记录
     * @param currentId
     * @param page
     * @param pageSize
     * @return
     */
    List<AttendanceRecordVO> getAttendanceRecords(Long currentId, int page, int pageSize);
}
